package com.wn.demo01;

import java.util.*;
import java.util.stream.Collectors;

/**
 * @author yellow Docter
 * @date 2024-09-06
 * @desc 蜗牛创想：www.woniuxy.com
 */
public class Demo03 {

    public static void main(String[] args) {

        Collection collection;

        //排序
        ArrayList arrayList = null;
        TreeMap treeMap;
        TreeSet treeSet;

        //排序的前提
        Comparable comparable ; //排序结构  自然排序  包装类实现了这个接口
        Integer t;  // 重写compareTo  进行排序 (排序规则的具体实现)
        Comparator comparator; // 比较器排序    在外包实现比较器进行排序

        //工具类实现排序
        Collections.sort(arrayList);  //自然排序 (排序的泛型必须实现comparable 接口
        Collections.sort(arrayList,(x,y)->{ //比较器排序 (比较器必须 要有这个 Comparator)
            return 0;
        });

        //stream怎么用
        //01 流程的创建创建
        arrayList.stream();
//        treeSet.stream();

        // Collection 接口中 有 stream() 下面的 list 和 set 都可以通过这个方法创建一个流

        //02 流的中间操作
//        arrayList.stream().sorted()
//        filter()  断言接口
//        map       函数式接口

        //03 流的终止 (收集)

//        arrayList.stream().sorted().collect(Collectors.toList())
//        arrayList.stream().sorted().collect(Collectors.toSet())

        // 03 内存可见性

        //volatile 可以解决 线程中的变量 副本 --修改后 可以修改主内存中的数据 其他线程可以及时看到数据变化

        //有序性
        int a = 1;
        int b = 2;  //代码先依次从上往下执行   有序性

        //指令重排   cpu在执行 代码的时候  会进行优化  先执行  b = 2  在执行 a = 1 这个叫做指令重排



    }

}
